#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "graphe.H"
#include "tab_noeud.H"


void initialiserTabNoeud(Tab_Noeud * t)
{
    (*t).capacite=1;
    (*t).ad=(Noeud*)malloc(sizeof(Noeud));
    (*t).derniere_position=0;
}

void testamentTabNoeud(Tab_Noeud * t)
{
		if ((*t).ad != 0)
		{
		        free((*t).ad);
		        (*t).ad=0;
		        (*t).capacite=0;
		        (*t).derniere_position=0;
		}
}


void ajoutNoeud(Tab_Noeud *t, Noeud* e)
{
		int i;
		if( (*t).capacite == (*t).derniere_position )
		{
		        Noeud * temp=(*t).ad;
		        (*t).ad=(Noeud*)malloc(((*t).capacite*2)*(sizeof(Noeud)));
		        for( i=0 ; i < t->capacite ; i++)
		        {
		                (*t).ad[i]=temp[i];
		        }
		        (*t).capacite=(*t).capacite*2;
		        free(temp);
		}
		(*t).ad[(*t).derniere_position]=*e;
		(*t).derniere_position++;
}

Noeud* rechercheNoeud(const Tab_Noeud * t, const char * nom)
{
		int i;
		Noeud *N=0;
		for (i=0 ; i < t->derniere_position ; i++)
		{       
				    if( strcmp(t->ad[i].nomVille,nom)==0)
				    {
				            return &(t->ad[i]);
				    }
		}
		return 0;
}

void afficheTabNoeud(const Tab_Noeud * N)
{
		int i=0;
		for(i=0 ; i < N->derniere_position ; i++)
		{
			printf("le nom de la ville est %s et la longitude est : %d et la latitude est %d et la couleur est %s\n",N->ad[i].nomVille,N->ad[i].longitude,N->ad[i].latitude,N->ad[i].couleur);
		}
}

void suppressionNoeud(Tab_Noeud *N, const char * nom)
{
		int i = 0;
		int ind;
		Noeud * Nd;
		for (i=0 ; i < N->derniere_position ; i++)
		{
		        if( strcmp(N->ad[i].nomVille,nom)==0)
		        {
		        		ind=i;
		        }
		}
	  printf("ind : %d\n",ind);
	  printf("derniere pos : %d\n",N->capacite);
   	N->ad[ind].latitude=N->ad[N->derniere_position-1].latitude;
   	N->ad[ind].longitude=N->ad[N->derniere_position-1].longitude;
   	strcpy(N->ad[ind].nomVille,N->ad[N->derniere_position-1].nomVille);
   	strcpy(N->ad[ind].couleur,N->ad[N->derniere_position-1].couleur);
   	N->derniere_position=N->derniere_position-1;
}

